EVAL Library fr VB/DOS INHALT A - Was sehe ich denn hier B - Was habe ich bekommen C - Was k”nnte ich kriegen D - Wie benutze ich das EVAL-Utility E - Verschiedenes A Was sehe ich denn hier ----------------------- EVAL01.OBJ - Objektdatei: enth„lt EVAL-Routinen EVAL.EXE - Beispiel: ben”tigt VBDRT10E.EXE EVAL.QLB - QuickLibrary: enth„lt EVAL-Routinen fr VB/DOS EVAL.LIB - Library zum linken der EVAL-Routinen EVAL02.FRM - Beispiel: Zeigt wie man EVAL-Routinen benutzt EVAL.TXT - Dies hier auf englisch (so gut ich's kann) DEUTSCH.TXT - Sie lesen die Datei gerade. CHECKOUT.BAT - Batch startet VBDOS mit dem Beispiel. B Was habe ich bekommen ---------------------- Eval ist eine komplette Library (QLB und LIB) fr VBDOS-Programmierer. Nun k”nnen Sie programme schreiben, die artithmetische Ausdrcke zur Laufzeit auswerten. Das heiát Ihre Anwender tippen sowas wie "3+4,9*18" ein und erhalten das Ergebnis. Die Library untersttzt folgende arithmetische Funktionen: - Addition (+) - Subtraktion (-) - Multiplikation (*) - Division (/) - Exponentiation (^) - Negation (-) Dezimaltrennzeichen, die die Library unterscheiden kann: - . fr die USA - , fr Deutschland Ergebnisse k”nnen wie folgt formatiert werden: USA Deutschland --------------------------------------- - left alignment linksbndig - right alignment rechtsbndig - centered zentriert Die Library arbeitet mit folgenden Bedienelementen - Label - Textbox - Combobox C Was k”nnte ich kriegen ----------------------- Obwohl Sie schon alles haben, was Sie ben”tigen, um EXE-Dateien compilieren zu k”nnen, ben”tigen sie vielleicht den Quellcode, um genau zu erkunden, wie die Library arbeitet. Die Dokumentation, die mit allen Quelltexten ausgeliefert wird zeigt Ihnen genau dies, ebenso behandelt sie Themen wie: "Benutzung von Bin„rflags" und "Entwerfen und Schreiben rekursiver Funktionen". Dieses Angebot ist ist verfgbar in Englisch und Deutsch und die Lizensierung lohnt sich. Dokumentation und Quellcode kosten entweder 10 US-Dollar oder 15 DM incl. Versand. Ausgeliefert wird es auf 3.5" Disketten, oder via E-Mail fr Compuserve Mitglieder. D Wie benutze ich das EVAL-Utility --------------------------------- 1. a) CHECKOUT.BAT ausfhren oder b) VBDOS starten: VBDOS /L EVAL.QLB /AH/ES - EVAL02.FRM laden und testen 2. Ihre Anwendung muá folgende Prozeduren kennen: DECLARE FUNCTION EvalReg% () DECLARE SUB EvalSetcboFmt (a AS CONTROL, b AS CONTROL) DECLARE FUNCTION evaluate% (TextBox AS CONTROL, Label AS CONTROL, fmt$) EvalReg% liefert den Funktionswert TRUE, wenn die Registrierung erfolgreich war. Ihre Anwendung muá die EVAL-Funktionen registrieren, weil die Library zun„chst einige l„nderspezifische Einstellungen (vor allem das Dezimaltrennzeichen) ermitteln muá, und sie muá sich Speicherplatz reservieren, der sp„ter benutzt wird. Also, bevor Sie irgendwelche Eval-Lib-Prozeduren aufrufen, versichern Sie sich, daá ihre Anwendung zuerst EvalReg erfolgreich abgeschlossen hat. Eine type Registrierung: IF EvalReg THEN ' if registration succeeded ... EvalSetcboFmt cboFmt, cboAlignment cboFmt.ListIndex = 0 cboAlignment.ListIndex = 0 ELSE ' if registration failed you may not use any of the ' eval-lib-routines UNLOAD frmEval02 END IF EvalSetCboFmt fllt zwei Combo-Boxen. cboFmt beinhaltet numerische Formatierungen, „hnlich denen, die BASICS Format$- Funktion benutzt, mit der Ausnahme, daá sie L„nderspezifisch aussehen. Also, wir in Deutschland benutzen fr die Zahl, die in BASIC "0.5" geschrieben wrde "0,5". Die Anwender von Software finden es daher irritierend, daá sie zur Formatierung den Punkt als Dezimaltrennzeichen verwenden sollen. Daher tr„gt EvalSetCboFmt diese Format-Strings l„nderspezifisch ein. Da sich Eval-Lib um die Konvertierungen kmmert, k”nnen Sie es beim Programmieren vergessen. Die zweite Kombo-Box, cboAlignment, wird mit den Alignment-Eigenschaften eines Labels gefllt. 0=linksbndig 1=rechtsbndig 2=zentriert. Dies geschieht entweder auf Englisch oder Deutsch. EvalSetCboFmt bedient die Anwender ihres Programms genau so, wie sie es brauchen, da es l„nderspezifische Einstellungen zur Laufzeit auswertet. Sollten Sie andere l„nderspezifische Einstellungen bercksichtigen wollen (mssen), so erwerben Sie bitte die oben beschriebene Lizenz, da sie den Quellcode der Library dazu anpassen und neu compilieren mssen. hier nun eine typische Sequenz, die eine Formel auswertet: ' 1. bestimme die Formatierung fmt$ = cboFmt.Text ' 2. bertrage das Ergebnis der Funktion evaluate in den Integer ' TEST. txtFormular ist ein Textbox-Control, dessen TEXT-Eigenschaft ' den auszuwertenden arithmetischen Ausdruck enth„lt. FMT$ ist der ' Format-String. lblResult ist ein Label-Control, das evaluate ' ben”tigt, um in die Caption-Eigenschaft das formatierte Ergebnis ' zu speichern. test=evaluate(txtFormular, lblResult,fmt$) ' evaluate benutzt Basic-Fehler-Codes um Fehler anzuzeigen. ' Falls kein Fehler auftrat, ist der Funktionswert FALSE, ' andernfalls sollte man den Anwender darauf aufmerksam machen, ' das irgendwas an seiner Formel nicht in Ordnung ist. IF Test THEN MSGBOX ERROR$(Test), 0, caption Die Funktion evaluate ben”tigt drei Parameter. Zun„chst die TextBox, deren TEXT-Eigenschaft einen arithmetischen Ausdruck enth„lt. Zweitens ein Label-Control. Evaluate schreibt das Ergebnis des arithmetischen Ausdrucks in die CAPTION-Eigenschaft des Labels. Drittens: Der Format- Parameter FMT$. evaluate ben”tigt diesen, um das Ergebnis zu formatieren, bevor es in die Caption-Eigenschaft des Labels gespeichert wird. Ein Null-String bedeuted: Keine Formatierung. E Verschiedenes --------------- EVAL.Lib benutzt doppelt genaue Flieákommazahlen um das Ergebnis der Formel auszurechnen. EVAL01.OBJ wurde wie folgt erzeugt: bc eval01.bas /g3/ah/t/c:512 Peter Benwar-Wagner ist der Autor von EVAL.LIB. Solange Sie EVAL.LIB privat benutzen ist es freeware. Sobald Sie Ihre Anwendung mit EVAL.LIB linken und ”ffentlich verbreiten, entweder als kommerzielle Software, als Shareware oder als Freeware, mssen sie eine Lizens erwerben. Copyright 1997 by Peter Benwar-Wagner, Remscheid. Alle Rechte vorbehalten.